package com.base.cn.platform.os.service.manage.op.article;

import com.base.cn.platform.os.service.FeignAuthConfig;
import com.base.cn.platform.os.service.manage.BaseService;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * 资讯类型接口
 * @author zsw
 * @create 2018-05-3
 */
@FeignClient(name = BaseService.appName , configuration = FeignAuthConfig.class)
public interface OpArticleTypeService extends BaseService {
    /**
     * 查询资讯类型数量
     * @param articleType
     * @create 2018-05-3
     */
    @RequestMapping(contextPath + "/op/articleTypeCount")
    BigDecimal count(@RequestBody Map<String, Object> articleType);

    /**
     * 分页查询资讯类型列表
     * @param currentPage 分页
     * @param articleType 查询条件
     * @create 2018-05-3
     */
    @RequestMapping(contextPath + "/op/queryArticleTypeList")
    Map<String,Object> queryArticleTypeList(@RequestParam(value = "currentPage", required = false, defaultValue = "1") int currentPage,
                                            @RequestBody Map<String, Object> articleType);

    /**
     * 不分页查询资讯类型列表
     * @param articleType 查询条件
     * @create 2018-05-3
     */
    @RequestMapping(contextPath + "/op/queryAllArticleType")
    List<Map<String, Object>> queryAllArticleType(@RequestBody Map<String, Object> articleType);

    /**
     * 保存/更新资讯类型
     * @param articleType
     * @create 2018-05-3
     */
    @RequestMapping(contextPath + "/op/saveUpdateArticleType")
    Map<String ,Object> saveUpdateArticleType(@RequestBody Map<String, Object> articleType);

    /**
     * 删除资讯类型
     * @param articleTypeIds 资讯类型Id串
     * @create 2018-05-3
     */
    @RequestMapping(contextPath + "/op/deleteArticleType")
    Map<String,Object> deleteArticleType(@RequestParam("articleTypeIds") String articleTypeIds);

    /**
     * 根据ID查询资讯类型
     * @param articleTypeId 资讯类型id
     * @return
     */
    @RequestMapping(contextPath + "/op/findArticleTypeById")
    Map<String, Object> findArticleTypeById(@RequestParam("articleTypeId") BigDecimal articleTypeId);

    /**
     * 修改资讯类型状态
     * @param articleTypeIds 资讯类型id串
     * @param status 状态：1.正常 2.禁用 3.删除
     * @return
     */
    @RequestMapping(contextPath + "/op/updateArticleTypeStatusByIds")
    Map<String, Object> updateArticleTypeStatusByIds(@RequestParam("articleTypeIds") String articleTypeIds,
                                                     @RequestParam("status") Integer status);
}
